//
//  main.m
//  OCMacDemo
//
//  Created by 杨冬武 on 2021/2/7.
//

#import <Foundation/Foundation.h>
#import <objc/runtime.h>
#import <malloc/malloc.h>
#import "DWPerson.h"
#import "DWDog.h"
#import "DWKVCDemo.h"

//#import "DWPerson+test01.h"

extern void _objc_autoreleasePoolPrint(void);

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        _objc_autoreleasePoolPrint();
        
        NSArray *a = [[NSArray array] autorelease];
        NSString *str = [[NSString stringWithFormat:@"a"] autorelease];
        for (int i = 0; i < 3; ++i) {
            __autoreleasing id abb = [[NSArray alloc] init];
        }
        _objc_autoreleasePoolPrint();
        
    }
    
    //_objc_autoreleasePoolPrint();
    return 0;
}


//void sizeTool() {
//    DWDog *obj = [[DWDog alloc] init];
//    //内存对齐后的成员变量占用的字节
//    int a = class_getInstanceSize([DWDog class]);
//    NSLog(@"a = %d", a);
//    //指针占用的内存空间
//    int b = malloc_size((__bridge const void *)obj);
//    NSLog(@"b = %d", b);
//}


void taggedPointer() {
    
//        DWPerson *person = [[DWPerson alloc] init];
//        [person test];
//        NSLog(@"%p %p %p %p", @(3), @(4123456789123456), @"a", @"12345678ertyuidfghjk");
    
//        NSString *a = @"123456789";
//        NSString *b = @"123456789";
//        NSMutableString *c = [a mutableCopy];
//        NSString *d = [c copy];
//        NSLog(@"%p %p %p %p", a, b, c, d);
}
